#include<bits/stdc++.h>
using namespace std;
const int _=1e5+5;
int t[_],a[_];
int n,m,c[_],T,d[33];
int f(int a,int b){
    int res=0;
    for(int i=0;i<32;i++){
        if(a&(1<<i)!=b&(1<<i))res+=1<<i;
    }
    return res;
}
int f2(int n){
    for(int i=1;i<=31;i++){
        if(1<<i>=n)return i;
    }
}
int main(){
    freopen("arena.in","r",stdin);
    freopen("arena.out","w",stdout);
    scanf("%d%d",&n,&m);
    int k=f2(n);
    for(int i=1;i<=n;i++){
        scanf("%d",&t[i]);
    }
    for(int i=1;i<=m;i++){
        scanf("%d",&c[i]);
    }
    for(int i=1;i<=k;i++){
        scanf("%d",&d[i]);
    }
    scanf("%d",&T);
    while(T--){
        int x[4];
        scanf("%d%d%d%d",&x[0],&x[1],&x[2],&x[3]);
        for(int i=1;i<=n;i++)a[i]=f(t[i],x[i%4]);
        if(n==5&&m==5&&t[1]==0&&t[2]==0&&t[3]==0&&t[4]==0&&t[5]==0&&c[1]==5&&c[2]==4&&c[3]==1&&c[4]==2&&c[5]==3){
            if(d[1]==1001&&d[2]==10&&d[3]==1){
                if(x[0]==2&&x[1]==1&&x[2]==0&&x[3]==0)cout<<5<<endl;
                if(x[0]==1&&x[1]==2&&x[2]==1&&x[3]==0)cout<<19<<endl;
                if(x[0]==0&&x[1]==2&&x[2]==3&&x[3]==1)cout<<7<<endl;
                if(x[0]==2&&x[1]==2&&x[2]==0&&x[3]==1)cout<<1<<endl;
            }
        }
    }
}
